/**
  ******************************************************************************
  * @文件名称 : disp_menu.c
  * @摘要 : 
  * @创建日期 : Aug 1, 2024
  * @创建者：Mbl
  ******************************************************************************
  * @使用说明
  *
  *  
  ******************************************************************************
  */

/* 声明包含头文件 -----------------------------------------------------------*/
#include "../Inc/disp_menu.h"
#include "../Inc/data_public.h"
/* 声明私有类型定义---------------------------------------------------------*/

/* 声明私有变量 -------------------------------------------------------------*/
static lv_obj_t* funcSetBtn;  //切换功能设置界面按钮
static lv_obj_t* dispSetBtn;  //切换显示设置界面按钮
static lv_obj_t* alarmSetBtn;  //切换报警设置界面按钮
static lv_obj_t* commaSetBtn;  //切换通讯设置界面按钮
static lv_obj_t* advSetBtn;  //切换高级设置界面按钮
static lv_obj_t* aboutSetBtn;  //切换关于本机界面按钮
static lv_obj_t* funcSetLabel;  //切换功能设置界面标签
static lv_obj_t* dispSetLabel;  //切换显示设置界面标签
static lv_obj_t* alarmSetLabel;  //切换报警设置界面标签
static lv_obj_t* commaSetLabel;  //切换通讯设置界面标签
static lv_obj_t* advSetLabel;  //切换高级设置界面标签
static lv_obj_t* aboutSetLabel;  //切换关于本机界面标签
/* 声明私有常量 -------------------------------------------------------------*/

/* 声明私有宏定义 -----------------------------------------------------------*/

/* 声明私有函数 -------------------------------------------------------------*/

/**
* @brief 菜单界面标签回调
* @param *e ：事件相关参数的集合，它包含了该事件的所有数据
* @return 无
*/
static void UI_menu_btn_event_cb(lv_event_t * e)
{
	lv_obj_t *target = lv_event_get_target(e); /* 获取触发源 */
	if(target == funcSetBtn)  //切换功能设置界面按钮
	{
		disp.New = DIF_FUNC;  //进入功能设置界面
	}
	else if(target == dispSetBtn)  //切换显示设置界面按钮
	{
		disp.New = DIF_DISP;  //进入显示设置界面
	}
	else if(target == alarmSetBtn)  //切换报警设置界面按钮
	{
		disp.New = DIF_ALARM;  //进入报警界面
	}
	else if(target == commaSetBtn)  //切换通讯设置界面按钮
	{
		disp.New = DIF_COMM;  //进入通讯设置界面
	}
	else if(target == advSetBtn)  //切换高级设置界面按钮
	{
		loginInfo.loginUser = USER;  //准备登录用户账号
		login_create();  //创建登录界面
	}
	else if(target == aboutSetBtn)  //切换关于本机界面按钮
	{
		disp.New = DIF_ABOUT;  //进入关于本机界面
	}
}

/**
  * @brief  菜单界面创建
  * @param  无
  * @retval 无
  */
void UI_create_menu(void)
{
	parentObj_img = lv_img_create(lv_scr_act());
    lv_img_set_src(parentObj_img, &dsc_img_buff[2]);
    lv_img_set_offset_x(parentObj_img, -2);	 /* 图片往 X 轴偏移 */
    lv_obj_add_style(parentObj_img, &style_parentObj, LV_STATE_DEFAULT);  //添加父对象为无填充样式
    lv_obj_set_size(parentObj_img, lv_pct(100), lv_pct(100));  //设置父对象的大小
    lv_obj_align(parentObj_img, LV_ALIGN_BOTTOM_MID, 0, 0);  //设置父对象的位置

    /* 菜单界面父对象 */
    parentObj = lv_obj_create(lv_scr_act());  //创建父对象
    lv_obj_add_style(parentObj, &style_parentObj, LV_STATE_DEFAULT);  //添加父对象为无填充样式
    lv_obj_set_size(parentObj, lv_pct(100), lv_pct(88));  //设置父对象的大小
    lv_obj_align(parentObj, LV_ALIGN_BOTTOM_MID, 0, 0);  //设置父对象的位置
    lv_obj_set_style_bg_color(parentObj, lv_palette_main(LV_PALETTE_GREEN), LV_STATE_DEFAULT);  //颜色

    /* 功能设置界面切换按钮 */
    funcSetBtn = lv_btn_create(parentObj);  //创建功能设置界面切换按钮
    lv_obj_set_size(funcSetBtn, 202, 89);  //设置父对象的大小
    lv_obj_set_style_bg_color(funcSetBtn, lv_color_hex(0xc9c9c9), LV_STATE_DEFAULT);
    lv_obj_align(funcSetBtn, LV_ALIGN_TOP_LEFT, lv_pct(5), lv_pct(23));  //位置
    lv_obj_add_event_cb(funcSetBtn, UI_menu_btn_event_cb, LV_EVENT_CLICKED, NULL);  //事件
    lv_obj_set_style_bg_img_src(funcSetBtn, &dsc_ico_buff[3], LV_STATE_DEFAULT);

    /* 显示设置界面切换按钮 */
    dispSetBtn = lv_btn_create(parentObj);  //创建显示设置界面切换按钮
    lv_obj_set_size(dispSetBtn, 202, 89);  //设置父对象的大小
    lv_obj_set_style_bg_color(dispSetBtn, lv_color_hex(0xc9c9c9), LV_STATE_DEFAULT);
    lv_obj_align(dispSetBtn, LV_ALIGN_TOP_LEFT, lv_pct(38), lv_pct(23));  //位置
    lv_obj_add_event_cb(dispSetBtn, UI_menu_btn_event_cb, LV_EVENT_CLICKED, NULL);  //事件
    lv_obj_set_style_bg_img_src(dispSetBtn, &dsc_ico_buff[3], LV_STATE_DEFAULT);
    /* 报警设置界面切换按钮 */
    alarmSetBtn = lv_btn_create(parentObj);  //创建报警设置界面切换按钮
    lv_obj_set_size(alarmSetBtn, 202, 89);  //设置父对象的大小
    lv_obj_set_style_bg_color(alarmSetBtn, lv_color_hex(0xc9c9c9), LV_STATE_DEFAULT);
    lv_obj_align(alarmSetBtn, LV_ALIGN_TOP_LEFT, lv_pct(70), lv_pct(23));  //位置
    lv_obj_add_event_cb(alarmSetBtn, UI_menu_btn_event_cb, LV_EVENT_CLICKED, NULL);  //事件
    lv_obj_set_style_bg_img_src(alarmSetBtn, &dsc_ico_buff[3], LV_STATE_DEFAULT);

    /* 通讯设置界面切换按钮 */
    commaSetBtn = lv_btn_create(parentObj);  //创建通讯设置界面切换按钮
    lv_obj_set_size(commaSetBtn, 202, 89);  //设置父对象的大小
    lv_obj_set_style_bg_color(commaSetBtn, lv_color_hex(0xc9c9c9), LV_STATE_DEFAULT);
    lv_obj_align(commaSetBtn, LV_ALIGN_TOP_LEFT, lv_pct(5), lv_pct(54));  //位置
    lv_obj_add_event_cb(commaSetBtn, UI_menu_btn_event_cb, LV_EVENT_CLICKED, NULL);  //事件
    lv_obj_set_style_bg_img_src(commaSetBtn, &dsc_ico_buff[3], LV_STATE_DEFAULT);

    /* 高级设置界面切换按钮 */
    advSetBtn = lv_btn_create(parentObj);  //创建高级设置界面切换按钮
    lv_obj_set_size(advSetBtn, 202, 89);  //设置父对象的大小
    lv_obj_set_style_bg_color(advSetBtn, lv_color_hex(0xc9c9c9), LV_STATE_DEFAULT);
    lv_obj_align(advSetBtn, LV_ALIGN_TOP_LEFT, lv_pct(38), lv_pct(54));  //位置
    lv_obj_add_event_cb(advSetBtn, UI_menu_btn_event_cb, LV_EVENT_CLICKED, NULL);  //事件
    lv_obj_set_style_bg_img_src(advSetBtn, &dsc_ico_buff[3], LV_STATE_DEFAULT);

    /* 关于本机界面切换按钮 */
    aboutSetBtn = lv_btn_create(parentObj);  //创建关于本机界面切换按钮
    lv_obj_set_size(aboutSetBtn, 202, 89);  //设置父对象的大小
    lv_obj_set_style_bg_color(aboutSetBtn, lv_color_hex(0xc9c9c9), LV_STATE_DEFAULT);
    lv_obj_align(aboutSetBtn, LV_ALIGN_TOP_LEFT, lv_pct(70), lv_pct(54));  //位置
    lv_obj_add_event_cb(aboutSetBtn, UI_menu_btn_event_cb, LV_EVENT_CLICKED, NULL);  //事件
    lv_obj_set_style_bg_img_src(aboutSetBtn, &dsc_ico_buff[3], LV_STATE_DEFAULT);

    /* 切换功能设置界面标签 */
    funcSetLabel = lv_label_create(funcSetBtn);  //切换功能设置界面标签
    lv_obj_add_style(funcSetLabel, &style_label2, LV_STATE_DEFAULT);  //添加切换功能设置界面标签标签为标签样式4
//    lv_label_set_text(funcSetLabel, LV_SYMBOL_SETTINGS" function");  //文本内容
    lv_label_set_text(funcSetLabel, dispText[DA.typeLanguage].function);  //文本内容
    lv_obj_set_style_text_color(funcSetLabel, lv_color_hex(0x000000), LV_STATE_DEFAULT);
    lv_obj_align_to(funcSetLabel, funcSetBtn, LV_ALIGN_CENTER, 0, 0);  //位置
//    lv_obj_align_to(funcSetLabel, funcSetBtn, LV_ALIGN_CENTER, 20, 0);  //位置
    /* 切换显示设置界面标签 */
    dispSetLabel = lv_label_create(dispSetBtn);  //切换显示设置界面标签
    lv_obj_add_style(dispSetLabel, &style_label2, LV_STATE_DEFAULT);  //添加切换显示设置界面标签为标签样式4
//    lv_label_set_text(dispSetLabel, LV_SYMBOL_IMAGE" display");  //文本内容
    lv_label_set_text(dispSetLabel, dispText[DA.typeLanguage].display);  //文本内容
    lv_obj_set_style_text_color(dispSetLabel, lv_color_hex(0x000000), LV_STATE_DEFAULT);
    lv_obj_align_to(dispSetLabel, dispSetBtn, LV_ALIGN_CENTER, 0, 0);  //位置
//    lv_obj_align_to(dispSetLabel, dispSetBtn, LV_ALIGN_CENTER, 20, 0);  //位置
    /* 切换报警设置界面标签 */
    alarmSetLabel = lv_label_create(alarmSetBtn);  //切换报警设置界面标签
    lv_obj_add_style(alarmSetLabel, &style_label2, LV_STATE_DEFAULT);  //添加切换报警设置界面标签为标签样式4
//    lv_label_set_text(alarmSetLabel, LV_SYMBOL_WARNING" alarm");  //文本内容
    lv_label_set_text(alarmSetLabel, dispText[DA.typeLanguage].alarmSet);  //文本内容
    lv_obj_set_style_text_color(alarmSetLabel, lv_color_hex(0x000000), LV_STATE_DEFAULT);
    lv_obj_align_to(alarmSetLabel, alarmSetBtn, LV_ALIGN_CENTER, 0, 0);  //位置
//    lv_obj_align_to(alarmSetLabel, alarmSetBtn, LV_ALIGN_CENTER, 20, 0);  //位置
    /* 切换通讯设置界面标签 */
    commaSetLabel = lv_label_create(commaSetBtn);  //切换通讯设置界面标签
    lv_obj_add_style(commaSetLabel, &style_label2, LV_STATE_DEFAULT);  //添加切换通讯设置界面标签为标签样式4
//    lv_label_set_text(commaSetLabel, LV_SYMBOL_LOOP" commu");  //文本内容
    lv_label_set_text(commaSetLabel, dispText[DA.typeLanguage].systemSet);  //文本内容
    lv_obj_set_style_text_color(commaSetLabel, lv_color_hex(0x000000), LV_STATE_DEFAULT);
    lv_obj_align_to(commaSetLabel, commaSetBtn, LV_ALIGN_CENTER, 0, 0);  //位置
//    lv_obj_align_to(commaSetLabel, commaSetBtn, LV_ALIGN_CENTER, 20, 0);  //位置
    /* 切换高级设置界面标签 */
    advSetLabel = lv_label_create(advSetBtn);  //切换高级设置界面标签
    lv_obj_add_style(advSetLabel, &style_label2, LV_STATE_DEFAULT);  //添加切换高级设置界面标签为标签样式4
//    lv_label_set_text(advSetLabel, LV_SYMBOL_EDIT" advanced");  //文本内容
    lv_label_set_text(advSetLabel, dispText[DA.typeLanguage].advanced);  //文本内容
    lv_obj_set_style_text_color(advSetLabel, lv_color_hex(0x000000), LV_STATE_DEFAULT);
    lv_obj_align_to(advSetLabel, advSetBtn, LV_ALIGN_CENTER, 0, 0);  //位置
//    lv_obj_align_to(advSetLabel, advSetBtn, LV_ALIGN_CENTER, 20, 0);  //位置
    /* 切换关于本机界面标签 */
    aboutSetLabel = lv_label_create(aboutSetBtn);  //切换关于本机界面标签
    lv_obj_add_style(aboutSetLabel, &style_label2, LV_STATE_DEFAULT);  //添加切换关于本机界面标签为标签样式4
//    lv_label_set_text(aboutSetLabel, LV_SYMBOL_FILE" about");  //文本内容
    lv_label_set_text(aboutSetLabel, dispText[DA.typeLanguage].about);  //文本内容
    lv_obj_set_style_text_color(aboutSetLabel, lv_color_hex(0x000000), LV_STATE_DEFAULT);
    lv_obj_align_to(aboutSetLabel, aboutSetBtn, LV_ALIGN_CENTER, 0, 0);  //位置
//    lv_obj_align_to(aboutSetLabel, aboutSetBtn, LV_ALIGN_CENTER, 20, 0);  //位置
}

/**
  * @brief  菜单界面删除
  * @param  无
  * @retval 无
  */
void UI_delete_menu(void)
{
    lv_obj_del(parentObj);  //删除当前界面
    lv_obj_del(parentObj_img);  //删除当前界面
}


